// 给定一个非空的字符串 s ，检查是否可以通过由它的一个子串重复多次构成。
// 思路，最小重复子串其实就是 字符串去除最长相等前后缀，通过kmp算法找到字符串的前缀表，判断字符串的长度是否可以最小重复子串整除
function getNext(s) {
    let next = new Array(s.length).fill(0)
    let left = 0
    let right = 1
    while (right < s.length) {
        while (left > 0 && s[left] !== s[right]) {
            left = next[left - 1]
        }
        if (s[left] === s[right]) {
            left++
        }
        next[right] = left
        right++
    }
    return next
}
// console.log(getNext('aabaaf'))
function repeatedSubstringPattern(s) {
    if (!s.length) {
        return false
    }
    let next = getNext(s)
    console.log(next)
    let len = next[s.length - 1]
    if (len !== 0 && (s.length % (s.length - len) === 0)) {
        return true
    }
    return false
}

let str = 'ababababab'

console.log(repeatedSubstringPattern(str))